package pruebas;

import java.util.ArrayList;

import juego.Botin;
import juego.Cohete;
import juego.Coordenada;
import juego.Laser;
import juego.Movil;
import juego.Proyectil;
import juego.Torpedo;
import juego.TorpedoRastreador;
import junit.framework.TestCase;

public class TestProyectiles extends TestCase {
	
	public void testMovimiento(){
		
		ArrayList<Movil> listaDeMoviles = new ArrayList<Movil>();
		ArrayList<Botin> listaDeBotines = new ArrayList<Botin>();
		Coordenada ubicacion = new Coordenada(0,20);
		Proyectil laser = new Laser(ubicacion);
		Coordenada ubicacionCohete = new Coordenada(2,1);
		Proyectil cohete = new Cohete(ubicacionCohete);
		Coordenada ubicacionTorpedo = new Coordenada(-9,2);
		Proyectil torpedo = new Torpedo(ubicacionTorpedo);
		Coordenada ubicacionTorpedoRastreador = new Coordenada(5,-20);
		Proyectil torpedoRastreador = new TorpedoRastreador(ubicacionTorpedoRastreador);
		
		listaDeMoviles.add(laser);
		listaDeMoviles.add(cohete);
		listaDeMoviles.add(torpedo);
		listaDeMoviles.add(torpedoRastreador);
		
		laser.vivir(listaDeMoviles,listaDeBotines);
		assertEquals(0,laser.verUbicacion().obtenerCoordenadaX());
		assertEquals(10,laser.verUbicacion().obtenerCoordenadaY());
		assertTrue(laser.estaVivo());
		laser.vivir(listaDeMoviles, listaDeBotines);
		assertEquals(0,laser.verUbicacion().obtenerCoordenadaX());
		assertEquals(0,laser.verUbicacion().obtenerCoordenadaY());
	    assertTrue(laser.estaVivo());
	    laser.hacerLeal();
	    laser.vivir(listaDeMoviles, listaDeBotines);
	    assertEquals(0,laser.verUbicacion().obtenerCoordenadaX());
		assertEquals(10,laser.verUbicacion().obtenerCoordenadaY());
	    assertTrue(laser.estaVivo());
		
		cohete.hacerLeal();
		assertTrue(cohete.verLealtad());
		cohete.vivir(listaDeMoviles, listaDeBotines);
		assertEquals(2,cohete.verUbicacion().obtenerCoordenadaX());
		assertEquals(11,cohete.verUbicacion().obtenerCoordenadaY());
		assertTrue(cohete.estaVivo());
		cohete.vivir(listaDeMoviles, listaDeBotines);
		assertEquals(2,cohete.verUbicacion().obtenerCoordenadaX());
		assertEquals(21,cohete.verUbicacion().obtenerCoordenadaY());
		assertTrue(cohete.estaVivo());
		
		torpedo.hacerLeal();
		assertTrue(torpedo.verLealtad());
		torpedo.vivir(listaDeMoviles, listaDeBotines);
		assertEquals(-9,torpedo.verUbicacion().obtenerCoordenadaX());
		assertEquals(12,torpedo.verUbicacion().obtenerCoordenadaY());
		assertTrue(torpedo.estaVivo());
		torpedo.vivir(listaDeMoviles, listaDeBotines);
		assertEquals(-9,torpedo.verUbicacion().obtenerCoordenadaX());
		assertEquals(22,torpedo.verUbicacion().obtenerCoordenadaY());
		assertTrue(torpedo.estaVivo());
		
		torpedoRastreador.vivir(listaDeMoviles, listaDeBotines);
		assertEquals(5,torpedoRastreador.verUbicacion().obtenerCoordenadaX());
		assertEquals(-30,torpedoRastreador.verUbicacion().obtenerCoordenadaY());
		assertTrue(torpedo.estaVivo());
		torpedoRastreador.vivir(listaDeMoviles, listaDeBotines);
		assertEquals(5,torpedoRastreador.verUbicacion().obtenerCoordenadaX());
		assertEquals(-40,torpedoRastreador.verUbicacion().obtenerCoordenadaY());
		assertTrue(torpedo.estaVivo());
		
		
	};


}
